home *** CD-ROM | disk | FTP | other *** search
/ LOGIC Apps / Logic-APPLE_II_APPS.iso / mac / LOGIC Apple II 5.25" Library - ProDOS / PRO070.dsk / TEXTER.bas < prev    next >
BASIC Source File  |  2012-02-16  |  10KB  |  129 lines

  1. 1  CALL  PEEK(175) +256 * PEEK(176) -46
  2. 10  ONERR  GOTO 40000
  3. 15  PRINT  CHR$(4);"BRUN DOGPAW"
  4. 55  IF  PEEK( -1101) < >6  THEN  GOSUB 55000
  5. 100  TEXT : HOME : PRINT  CHR$(12); CHR$(21): GOSUB 21000
  6. 200  DIM NM$(200): DIM TXT$(200): DIM TP$(200)
  7. 210  TEXT : HOME : CALL 54915:D$ =  CHR$(4): PRINT  CHR$(12); CHR$(21):FM$(1) = "TEXT TO 40 COLUMN SCREEN":FM$(2) = "TEXT TO 80 COLUMN SCREEN":FM$(3) = "TEXT TO PRINTER"
  8. 212 FM$(4) = "FIND TEXT (80 COLUMN)":FM$(5) = "DELETE FILES":FM$(6) = "QUIT":M$(1) = "Main Menu":P$ = "Press arrows or numbers."
  9. 220  & "MENU",FM$(1),6,M$(1),P$,SE(1)
  10. 223  IF SE(1) = 0  THEN 220
  11. 225  IF SE(1) = 6  THEN 42000
  12. 227  IF SE(1) = 3  THEN  GOSUB 18000: IF EP = 1  THEN 210
  13. 230  GOSUB 8000: IF SE(3) = 0  THEN 210
  14. 470  PRINT D$;"CLOSE": PRINT D$;"PREFIX": INPUT DR$(1)
  15. 475  GOSUB 13000
  16. 480 DR$(1) =  LEFT$(DR$(1), LEN(DR$(1)) -1)
  17. 500  PRINT D$;"OPEN ";DR$(1);",TDIR"
  18. 510  PRINT D$;"READ ";DR$(1)
  19. 515 X = 0
  20. 520 X = X +1: INPUT NM$(X):NM$(X) =  MID$ (NM$(X),2,29):TXT$(X) =  MID$ (NM$(X),1,16):TP$(X) =  MID$ (NM$(X),17,3): IF X >4  AND NM$(X) = ""  THEN 535
  21. 525  GOTO 520
  22. 535  PRINT D$;"CLOSE";DR$(1): REM  IF THIS LINE # IS CHANGED, CHANGE LINE # 40010
  23. 700 CNT = X -4
  24. 950  GOSUB 15000: GOSUB 16000
  25. 1000  & "MENU",NM$(4),CNT,DR$(1),P$,SE(2)
  26. 1005  IF CNT = 0  AND SE(2) = 0  THEN  TEXT : HOME : PRINT "/RAM is empty ": PRINT : PRINT "Press <RETURN> to continue.": PRINT  CHR$(8): GET A$
  27. 1010  IF SE(2) = 0  THEN 230: REM    <ESC> GOES BACK
  28. 1040  IF TP$(SE(2) +3) = "DIR"  THEN  PRINT D$;"PREFIX";TXT$(SE(2) +3): GOTO 470
  29. 1050 FL = 0: IF TP$(SE(2) +3) < >"TXT"  AND TP$(SE(2) +3) < >"AWP"  AND SE(1) < >5  THEN FL = 1: GOSUB 12000
  30. 1060  IF FL = 1  THEN 950
  31. 1500  ON SE(1) GOSUB 5000,5000,7000,20000,22000
  32. 1600  IF AG = 1  THEN 470
  33. 1610  IF AG = 0  THEN 210
  34. 5000  IF SE(1) = 1  THEN  PRINT D$;"PR#0"
  35. 5010  IF SE(1) = 2  THEN  PRINT D$;"PR#3": REM IF THIS LINE # IS CHANGED THEN CHANGE LINE 40020
  36. 5020  TEXT : HOME : PRINT D$;"DOGPAW";TXT$(SE(2) +3): GOTO 8800
  37. 7000  IF TP$(SE(2) +3) = "AWP"  THEN 7100
  38. 7010  PRINT D$;"OPEN";TXT$(SE(2) +3)
  39. 7020  PRINT D$;"READ";TXT$(SE(2) +3)
  40. 7030  TEXT : HOME :CR = 0: VTAB 12: HTAB 8: PRINT "Analyzing textfile format ";: & "WINDOW",10,14,1,40: INVERSE : & "BORDER IN","^": NORMAL : FOR B = 1 TO 800: GET A$: IF A$ =  CHR$(13)  THEN CR = CR +1
  41. 7035  NEXT 
  42. 7050  PRINT D$;"CLOSE"
  43. 7075  GOSUB 11000
  44. 7100  TEXT : HOME : IF CZ >99  OR TP$(SE(2) +3) = "AWP"  THEN  GOSUB 14000: PRINT D$;"PR#";PS: PRINT D$;"DOGPAW";TXT$(SE(2) +3);"\";TXT$(SE(2) +3);"PAGE #": PRINT D$;"PR#0": GOTO 8800
  45. 7200  TEXT : HOME : IF CZ <100  THEN  GOSUB 14000: PRINT D$;"PR#";PS: PRINT D$;"DOGPAW";TXT$(SE(2) +3);"@\";TXT$(SE(2) +3);"PAGE #": PRINT D$;"PR#0": GOTO 8800
  46. 8000 SL$(1) = "SLOT 6, DRIVE 1":SL$(2) = "SLOT 6, DRIVE 2":SL$(3) = "SLOT 5, DRIVE 1":SL$(4) = "SLOT 5, DRIVE 2":SL$(5) = "RAM5":SL$(6) = "YOUR SLOT AND DRIVE":SL$(7) = "QUIT":M$(2) = "Where is the file?"
  47. 8010 P$ = "Use arrows or numbers, <ESC> goes back"
  48. 8040  GOSUB 15000
  49. 8050  & "MENU",SL$(1),7,M$(2),P$,SE(3)
  50. 8100  IF SE(3) = 0  THEN  RETURN 
  51. 8150  IF SE(3) = 1  THEN  PRINT D$;"PREFIX,S6,D1
  52. 8200  IF SE(3) = 2  THEN  PRINT D$;"PREFIX,S6,D2
  53. 8250  IF SE(3) = 3  THEN  PRINT D$;"PREFIX,S5,D1
  54. 8300  IF SE(3) = 4  THEN  PRINT D$;"PREFIX,S5,D2
  55. 8325  IF SE(3) = 5  THEN  PRINT D$;"PREFIX/RAM5
  56. 8350  IF SE(3) = 6  THEN  GOSUB 9000: IF ESC = 1  THEN 8000
  57. 8360  IF SE(3) = 6  THEN  PRINT D$;"PREFIX,"YS$;",";YD$
  58. 8400  IF SE(3) = 7  THEN 42000
  59. 8450  RETURN 
  60. 8800  PRINT  CHR$(12); CHR$(21): GOSUB 15000: GOSUB 16000: GOSUB 17000: HOME : VTAB 15: HTAB 3: PRINT "Do the same operation on another file": HTAB 3: PRINT "from the same directory? Y (Y/N)";
  61. 8810  & "WINDOW",13,18,1,40: INVERSE : & "BORDER IN","^": NORMAL : VTAB 16: HTAB 28: PRINT  CHR$(8);
  62. 8820 AG = 0: GET AG$: HOME : IF AG$ =  CHR$(13)  OR AG$ = "Y"  OR AG$ = "y"  THEN AG = 1
  63. 8850  RETURN 
  64. 9000  GOSUB 16000:ESC = 0: HOME : POKE  -16368,0: VTAB 10: PRINT "Enter Slot #:  ";: PRINT  CHR$(8);: POKE 36,15: GET YS$: PRINT YS$: IF YS$ =  CHR$(27)  THEN ESC = 1: RETURN 
  65. 9010 YS =  VAL(YS$):YS$ = "S" +YS$
  66. 9025  IF YS >7  OR YS <1  THEN  GOSUB 10000: INVERSE : VTAB 12: HTAB 14: PRINT "NO SUCH SLOT": NORMAL : VTAB 16: HTAB 7: PRINT "Press <RETURN> to try again.";: POKE 36,34: GET A$: GOTO 9000
  67. 9050  POKE  -16368,0:ESC = 0: VTAB 12: PRINT "Enter Drive #:  ";: POKE 36,15: GET YD$: PRINT YD$: IF YD$ =  CHR$(27)  THEN ESC = 1: RETURN 
  68. 9060 YD =  VAL(YD$):YD$ = "D" +YD$
  69. 9075  IF YD >2  OR YD <1  THEN  GOSUB 10000: INVERSE : VTAB 15: HTAB 14: PRINT "NO SUCH DRIVE": NORMAL : VTAB 19: HTAB 7: PRINT "Press <RETURN> to try again.";: POKE 36,34: GET A$: PRINT : GOTO 9050
  70. 9200  RETURN 
  71. 10000  & "SOUND EFFECTS",50,255: RETURN 
  72. 11000  IF CR = 0  THEN CR = 1
  73. 11005 CZ = B/CR: REM   CALCULATE RATIO OF TEXT TO CARRIAGE RETURNS
  74. 11010  RETURN 
  75. 12000  IF SE(1) = 5  THEN  RETURN 
  76. 12010  HOME : GOSUB 10000: VTAB 10: HTAB 7: PRINT " Please choose Appleworks": VTAB 11: HTAB 7: PRINT " or text file."
  77. 12050  & "WINDOW",8,13,6,33: INVERSE : & "BORDER IN","^": NORMAL 
  78. 12100  TEXT : VTAB 18: HTAB 7: PRINT "Press <RETURN> to continue ";: PRINT  CHR$(8);: GET A$: HOME : RETURN 
  79. 13000  TEXT : HOME : VTAB 12: HTAB 12: PRINT "Reading Directory": & "WINDOW",10,14,1,40: INVERSE : & "BORDER IN","^": NORMAL : TEXT : RETURN 
  80. 14000  TEXT : HOME : VTAB 12: HTAB 11: PRINT "Preparing to Print": & "WINDOW",10,14,1,40: INVERSE : & "BORDER IN","^": NORMAL : TEXT : RETURN 
  81. 15000  & "MENU",FM$(1),0,M$(1): & "WINDOW",3,24,1,40: RETURN 
  82. 16000  & "MENU",SL$(1),O,M$(2): & "WINDOW",5,24,1,40: RETURN 
  83. 17000  & "MENU",NM$(1),0,DR$(1): & "WINDOW",7,24,1,40: RETURN 
  84. 18000 EP = 0: HOME : VTAB 12: HTAB 13: PRINT "PRINTER SLOT 1";: PRINT  CHR$(8);: POKE 36,25: GET PS$: IF PS$ =  CHR$(27)  THEN EP = 1: RETURN 
  85. 18010 PS =  VAL(PS$): IF PS$ =  CHR$(13)  THEN PS = 1
  86. 18020  IF PS <1  OR PS >7  THEN  GOSUB 10000: PRINT : PRINT : PRINT : INVERSE : HTAB 4: PRINT "PLEASE CHOOSE A SLOT OF 1 THRU 7": NORMAL : PRINT : PRINT : HTAB 7: PRINT "Press <RETURN> to continue ";: PRINT  CHR$(8);: GET A$: GOTO 18000
  87. 18030  RETURN 
  88. 20000  PRINT D$;"PR#3": & "MENU",FM$(1),0,M$(1): POKE 34,2: & "MENU",SL$(1),0,M$(2): POKE 34,4: & "MENU",NM$(1),0,DR$(1): POKE 34,6
  89. 20005  PRINT : PRINT  TAB( 36): INVERSE : PRINT "FIND TEXT": NORMAL : PRINT : PRINT : PRINT "Enter text to find in ";TXT$(SE(2) +3)
  90. 20007  VTAB 22: PRINT  TAB( 26): INVERSE : PRINT "<ESC> OR <CONTROL E> TO EXIT": NORMAL 
  91. 20010  VTAB 13:FIND$ = "": & "INPUT",80,FIND$,210,CTRL$
  92. 20015  IF FIND$ =  CHR$(5)  THEN 210: REM   ON UNENHANCED IIE & OLDER CNTRL E EXITS FROM 80 COL.
  93. 20020  TEXT : PRINT D$;"DOGPAW";TXT$(SE(2) +3);"$";FIND$: GOSUB 8800: RETURN 
  94. 21000  FOR V = 1 TO 25: INVERSE : PRINT "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^";: NEXT V: POKE 32,2: POKE 33,36: POKE 34,2: POKE 35,21: HOME 
  95. 21010  NORMAL : VTAB 6: HTAB 16: PRINT "TEXTER": PRINT : HTAB 12: PRINT "Copyright 1989": HTAB 18: PRINT "by": HTAB 11: PRINT "Garry M. DeLong": HTAB 18: PRINT "and": HTAB 9: PRINT "Green Mountain Software"
  96. 21015  HTAB 13: PRINT "P.O.BOX 40853": HTAB 12: PRINT "Portland OR 97240": PRINT : HTAB 14: PRINT "Shareware $5"
  97. 21030  VTAB 20: HTAB 14: PRINT "PRESS A KEY";: GET A$: POKE 36,25
  98. 21100  RETURN 
  99. 22000  GOSUB 16000: GOSUB 17000
  100. 22025  PRINT : PRINT : PRINT : INVERSE : HTAB 14: PRINT "DELETE FILES": NORMAL : PRINT : PRINT 
  101. 22050  PRINT "You are about to permanently destroy": PRINT : PRINT TXT$(SE(2) +3): PRINT : PRINT "Do you really want to do this? (Y/N)";: POKE 36,36: GET A$
  102. 22100  IF A$ < > CHR$(27)  AND A$ < >"Y"  AND A$ < >"y"  AND A$ < >"N"  AND A$ < >"n"  THEN  GOSUB 10000: HOME : GOTO 22025
  103. 22150  IF A$ =  CHR$(27)  OR A$ = "n"  OR A$ = "N"  THEN 210
  104. 22200  HOME : PRINT D$;"delete";TXT$(SE(2) +3)
  105. 22250  PRINT : PRINT : PRINT : HTAB 15: PRINT "File deleted": PRINT : PRINT : HTAB 7: PRINT "Press <RETURN> to continue.";: POKE 36,34: GET A$: GOTO 8800
  106. 23000  & "WINDOW",22,24,1,40: VTAB 24: HTAB 12: INVERSE : PRINT "<ESC> GOES BACK": NORMAL 
  107. 23050  RETURN 
  108. 40000  PRINT D$;"CLOSE": TEXT : HOME :EN =  PEEK(222):LN =  PEEK(218) + PEEK(219) *256
  109. 40003 RF = 0: IF EN = 5  AND LN = 520  AND DR$(1) = "/RAM"  THEN RF = 1: GOTO 535
  110. 40005  IF EN = 5  AND LN = 520  THEN  PRINT "No files on this disk": GOTO 40500
  111. 40010  IF EN = 5  AND B <800  THEN  GOSUB 11000
  112. 40015  IF EN = 5  AND B <800  THEN  PRINT D$;"CLOSE": GOSUB 7075: CALL 54915: GOTO 1600
  113. 40020  IF EN = 3  AND LN = 5010  THEN  PRINT "You do not have a compatible": PRINT "eighty column card": GOTO 40500
  114. 40023  IF EN = 3  AND LN = 20000  THEN  PRINT "You do not have a compatible": PRINT "eighty column card": GOTO 40500
  115. 40025  IF EN = 3  AND LN =  >8149  AND LN <8400  THEN  PRINT "No such drive on this system.": GOTO 40500
  116. 40040  IF EN = 6  AND LN = 500  THEN  PRINT "OOPS! Different disk. Press <RETURN>": PRINT "for the 1st menu and then you'll be": PRINT "Able to read the new disk. ";: PRINT  CHR$(8);: GET A$: POKE  -16368,0: CALL 54915: RUN 200
  117. 40050  IF EN = 6  AND LN = 8325  THEN  PRINT "RAM5 not found.  Is your RAM disk set": PRINT "to larger than 0K?": GOTO 40500
  118. 40060  IF EN = 6  AND LN = 15  THEN  PRINT "DOGPAW not found.": PRINT "A copy of the binary file DOGPAW": PRINT "must be in the same directory as TEXTER.": PRINT "Please go to the original disk and": PRINT "copy DOGPAW to the current directory."
  119. 40065  IF EN = 6  AND LN = 15  THEN  PRINT : PRINT "PRESS <RETURN> ";: PRINT  CHR$(8);: GET A$: PRINT  CHR$(4);"BYE"
  120. 40370  IF EN = 8  THEN  PRINT "I/O ERROR": PRINT "Do you have a disk in the selected": PRINT "drive?  Is the door closed?": PRINT "Is the disk a ProDOS disk?": GOTO 40500
  121. 40380  IF EN = 6  THEN  PRINT "Path not found.": GOTO 40500
  122. 40390  IF EN = 3  THEN  PRINT "No device connected.": GOTO 40500
  123. 40400  POKE  -16368,0: PRINT "ERROR # ";EN;: PRINT " IN LINE # ";LN: PRINT "PRESS <RETURN> TO CONTINUE ": PRINT  CHR$(8): GET A$: RUN 200
  124. 40500  PRINT : PRINT "Press <RETURN> to continue. ";: PRINT  CHR$(8);: GET A$: RUN 200
  125. 42000  TEXT : HOME : & "RESTORE AMP": PRINT D$;"CLOSE": PRINT D$;"PREFIX/": POKE 216,0: PRINT D$;"BYE"
  126. 55000 : REM  #CONVERT MENU TEXT TO UPPER CASE IF II+ :IF PEEK (-1101) < >6 THEN GOSUB 55000
  127. 55050 V$ = "00165103133074165104133075160004177074240015201127176008201097144004041223145074200208237160000177074170200177074134074133075177074208219096": FOR A = 768 TO 813:V =  VAL( MID$ (V$,3 *(A -767),3)): POKE A,V: NEXT 
  128. 55060  CALL 768
  129. 55075  RETURN